#ifndef __PURECLOG__
#define __PURECLOG__
#ifdef __cplusplus
extern "C"
{
#endif

#ifdef _MSC_VER
#ifdef _PURECLOG_SELF
#define PURECLOG_API _declspec(dllexport)
#else
#define PURECLOG_API _declspec(dllimport)
#endif
#else
#define PURECLOG_API
#endif

	typedef enum
	{
		PURECLOG_DEBUG,
		PURECLOG_INFO,
		PURECLOG_WARN,
		PURECLOG_ERR,
		PURECLOG_CLOSE,
	} LOGLEVEL;

	PURECLOG_API void pureclog_init(LOGLEVEL streamlevel, LOGLEVEL filelevel, const char *logfile, int maxlogfilesize);
	PURECLOG_API void pureclog_setstreamlevel(LOGLEVEL streamlevel);
	PURECLOG_API void pureclog_setfilelevel(LOGLEVEL filelevel);
	PURECLOG_API void pureclog_deinit();
#ifdef _MSC_VER
	PURECLOG_API int gettimeofday(struct timeval *tp, void *tzp);
#endif

	PURECLOG_API void pureclog_printf(const char *file, int line, const char *function, LOGLEVEL level, const char *fmt, ...);
#ifdef __cplusplus
}
#endif
#endif
